home *** CD-ROM | disk | FTP | other *** search
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 74
-
-
- TURBO-LESSON 16: REAL NUMBERS
-
- OBJECTIVES - In this lesson, you will learn about:
-
- 1. Range of Real Numbers
- 2. Input/Output of Real Numbers
- 3. Calculations with Real Numbers
- 4. Calculations with Integers and Real Numbers
-
-
- 1. Range of Real Numbers
-
- For business processing (dollar amounts), and scientific
- processing, integers alone are not adequate. Decimal numbers and
- sometimes numbers in scientific notation are needed.
-
- TURBO provides Real Numbers with 11 significant digits of
- precision in the range:
-
- 1E-38 to 1E+38
-
- (The BCD version of TURBO provides 18 significant digits and a
- range of 1E-63 to 1E+63, but this set of TURBO-LESSONS deals
- with the more limited range above.)
-
- ##### DO:
-
- Run PROG16.
-
- Enter 444.333222111 and examine the result presented in
- scientific notation.
-
- How many digits are retained before the E? (I counted 11,
- including digits on both sides of the decimal point.)
-
- This is the 11 significant digits of precision. Note that the
- last 1 you entered was dropped.
- î
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 75
-
-
- 2. Input/Output of Real Numbers.
-
- You will need to know what to expect with various combinations of
- input and output of real numbers.
-
- ##### DO:
-
- Run PROG16.
-
- Enter 444.333222111 and study the various outputs.
-
- When the real number, A, is output without any formatting,
- scientific notation is used:
-
- 4.4433322211 are the significant digits.
-
- E+02 means multiply by 10 to the 2nd power to get the number.
-
- If you want the number presented in some other form, you can add
- the :w:d formatting to the name of the variable to print.
-
- :w Width of the print field
- :d Decimal positions to print
-
- WriteLn(A:10:2); This statement would print the number, A, in a
- print field 10 characters wide, with 2 decimal positions.
-
- Look at the outputs on the screen again. The formats used are
- printed at the left. Square brackets are printed to show the
- width of the field and where the numbere is printed (left or
- right-justified).
-
- :-w Width of print field, left-justify the number.
-
- Notice the use of the minus sign to force printing of the number
- at the left of the field.
-
- What happens to the print field width when numbers are printed
- left-justified?
-
- ##### DO:
-
- Run PROG16 with 3.4567 as input.
-
- What happens when a print format is specified which will not hold
- all of the significant digits? Is the number rounded?
- î
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 76
-
-
- 3. Calculations with Real Numbers.
-
- ##### DO:
-
- In PROG16 change the ReadLn(A) to ReadLn(B).
-
- Add after ReadLn(B):
-
- A := B + C;
-
- The result printed will be the sum of B, which you enter, and C
- which is a constant, -2.0.
-
- Run the program with 2.34 as input.
-
- Are the results as expected?
-
- In scientific calculations, very large, and very small numbers
- are sometimes needed. Can you enter these in a convenient form
- without a long string of zeros?
-
- The radius of the earth is 6370000 meters.
- This is the same as 6.37 times 100000
- Which is the same as 6.37 times 10 to the 6th power
- Which may be entered as 6.37E6 or 6.37E06
- or 6.37E+6 or 6.37E+06
-
- ##### DO:
-
- Run the program with 6.37E6 as input.
-
-
-
- Try the other 3 forms listed above.
-
- Are the results the same in all cases?
- î
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 77
-
-
- ##### DO:
-
- Run the program with 6370000 as input.
-
- Does it make any difference whether the number is input in
- scientific notation or in the usual form?
-
- ##### DO:
-
- Run the program with 6.37E7 as input.
-
- What happens when the result is too large for the format?
- (Count the character positions used to print A:10:2).
-
- ##### DO:
-
- Get a new copy of the original PROG16.
-
- Run the program with 6.37E-6 as input.
-
- Notice the unformatted output is correct, but the formatted
- output shows nothing but zeros.
-
- The result, A, is 0.00000637, with significant digits too far to
- the right to show up in the formatted output.
-
- ##### DO:
-
- Change the WriteLn format, A:10:2 to A:10:6. (Notice there are
- two A:10:2's in the statement).
-
- Run the program with the following values:
-
- 6.37E6, 6.37E-6, 6.37E-4
- î
- TURBO-LESSONS - A Pascal Tutorial Version 1.01 Page 78
-
-
- 4. Calculations with Integers and Real Numbers.
-
- What happens when you mix Integers and Real numbers in
- calculations?
-
- ##### DO:
-
- Get a copy of the original PROG16 and make the following changes:
-
- Change ReadLn(A); to ReadLn(I);
-
- Change the prompt to Write('Enter an Integer: ');
-
- Add after the ReadLn statement:
-
- J := I + C;
-
- Run the program.
-
- What results did you get?
-
- The "Type mismatch" refers to J.
-
- Since the calculation involves both an integer, I, and a real
- number, C, the result cannot be stored in an integer variable.
- If the result had significant digits after the decimal, they
- would be lost when stored as an integer.
-
- ##### DO:
-
- Change the calculation to:
-
- A := I + C;
-
- Run the program.
-
-
- NOTE: ON YOUR OWN, YOU MAY WANT TO EXPERIMENT WITH THE WRITELN
- FORMATS. CHANGE THE FORMATS TO VARIOUS VALUES AND TRY THEM
- WITH A VARIETY OF INPUTS.
- î
-